The present invention provides a method and computer system for determining staffing levels and scheduling staff members to meet various performance targets in skills-based and non-skills based service systems. Examples of systems where the method and computer system of the invention are useful include contact centers where contact center agents may be trained in one or more skills to provide service to one or more types of customer calls (e.g. general information calls, sales calls, technical help calls, Spanish speaking callers, English speaking callers), hospitals where nurses and doctors may provide different types of medical services, banks where tellers may be specialized in one or more types of services, etc. Descriptions of the computer implemented method of the invention are provided for a contact center (“call center” and “contact center” are used interchangeably in this document) environment where customers place service requests by calling different phone numbers or by using mediums such as email, fax, or web chat, and a plurality of agents trained in the services sought by customers answer these contacts to provide services.
In a skills-based call center environment, a plurality of service requests are received at a plurality of call center locations where agents are located. A call center is typically a building with agent workstations that are connected to the public telephone system via an automatic call distributor (ACD). Two or more call centers may be connected to form virtual centers where agents may not be physically located in the same building but associated through organizational, skills possessed, or geographical units, etc. via an ACD. For instance, a service environment involving home based call center agents may be structured into organizational units (e.g. Dallas sales organizational unit) although agents may not be physically housed at the same location. Different call centers may have different operating hours and may be located in different time zones.
When a contact is received, an ACD either delivers it to an agent with the needed skill or queues it until such an agent becomes available. Contacts requiring the same service type that are serviced by an organizational unit over time are referred to as a “contact stream”. There may be a plurality of contact streams associated with different organizational units. Contact streams that are used to obtain a particular type of service form a “contact group”. For example, sales contact streams served by call centers located in Matawan, N.J., Atlanta, GA., Phoenix, Ariz. together form the “sales contact group”. Likewise, there may be multiple channels of non-phone communication mediums (e.g. multiple email addresses) for requesting the same type of service. In the same manner, one or more contact streams using a different communication medium (e.g. email addresses for requesting the same type of service) form a contact group.
Agents may be skilled in providing service at various levels (called “skill level”) rated from the most skilled to the least (e.g. expert level=1, average level=2, basic level=3, etc.). A skill level indicates the preference or proficiency level of an agent in providing service to contacts queued for that skill. The minimum skill level that may be permitted to serve a customer may also be specified. Agents with the same skill types and skill levels form a “skill group”. Agents in a skill group may be located at a plurality of locations.
An agent schedule specifies work and non-work (“off”) days, and daily shift start and end times. Moreover, depending on the length of a shift, an agent may be given one or more breaks. For example, an 8.5-hour shift may require two 15-minute relief breaks and one 30-minute lunch break. An agent's schedule also provides the start and end times for the daily breaks.
Agent schedules are generated over a period of time (called “scheduling period”.) A scheduling period may be several days, a week or several weeks. Agent schedules generated over a scheduling period specify their daily shift start and end times, work and non-work (“days off”) days, and daily break times. Although the method of the invention is described for a scheduling period of one week (7days), it can also be applied to generate schedules over any duration.
For staffing and agent scheduling, it is customary to divide a scheduling period in to periods of equal length (called “planning period”.) A planning period may be 15, 30 or 60 minutes, or longer. Forecasts of the number of contacts (called “contact volumes”) and average time required to serve a customer contact (interchangeably called “average handling time”, “AHT” or for each contact group are generated by a forecasting system for each planning period over the scheduling period. One such forecasting system is described in the U.S. patent application Ser. No. 11/446,711 by Aykin.
There maybe one or more skill groups. If agents in each skill group have a single skill serving contacts and each contact group is served by one skill group exclusively, staffing and agent scheduling is in a “non-skills based” routing environment. If agents have one or more skills and contacts from multiple contact groups are routed to these agents following certain routing rules (e.g. highest skill level available for a contact), then staffing and scheduling is in a “skills-based” environment. In this type of systems, contact groups are not exclusively associated with an agent group but are served by one or more skill groups. Let the set of all skill groups be SG with the skills of the agents in skill group i be Si. Let si represent the number of skills in Si.
For each contact group k, performance of the system over a planning period is measured by a service level (“service level”) metric. Service level, vkht %, is calculated as the percentage of contacts from contact group k that are answered within the service level threshold, Δkht time units from their receipt, in planning period t on day h. Other performance metrics used at contact centers include the average speed of answer measuring the average waiting time for contacts that are eventually answered by an agent, abandonment percentage measuring the percentage of customers who decided to abandon their contacts before reaching an agent, and percentage of agent time occupied with work (called “agent occupancy”). Since service level is one of the widely used performance measures in contact centers, the method of the invention is illustrated for this measure. However, the computer implemented method and system of the invention can also be used with other performance measures.
Service level targets are usually set for contact groups. For example, a call center may express its service level target for a contact group as 80% of the contacts answered in 20 seconds or less of receipt in all planning periods. With such a target, the call center aims to schedule enough agents with required skills in each planning period to answer 80% of customer contacts in 20 seconds or less. Different service level targets may be specified for different planning periods and contact groups.
Some contact centers may place a limit on maximum agent occupancy while targeting a service level or other performance levels. For some contact groups generating revenues (e.g. catalog sales), the performance metric may be based on the maximization of profit. These operational variations found in contact centers are also within the scope of the method and system of the invention.
The number of agents in a skill group and their availabilities (i.e. number of weekly work hours, work day availability, etc.) are limited by the existing workforce. Over a longer period of time, call centers can increase (or decrease) the number of agents by hiring (or laying off).
Typically, there are constraints on the way an agent's schedule can be constructed (called “scheduling rules”) comprising of daily shift start times, shift lengths, number of daily breaks, break lengths, earliest and latest start times (“break window”) for each daily break, number of days off, number of consecutive work or off days, and number of weekend days off. Scheduling rules collectively specifying the way an agent's weekly work and non-work schedule can be constructed is called a “tour type” or simply a “tour”. For example, a 5×8 tour type may specify 5 days of work with an 8-hour shift length, two daily relief breaks of 15-minute each, and one 30-minute daily lunch break. Moreover, it may require consecutive or non-consecutive days off, and identical or variable shift start and break times. To be scheduled, each agent must be assigned to a tour type. A tour type may have one or more agents assigned to it.
The number of agents in a skill group which are required to meet or exceed the service level targets is calculated for each planning period. These agent counts are interchangeably referred to as “staffing levels” or “agent requirements”. As described below, in each iteration of the method of the invention, staffing levels for one skill group are updated. Once the required staffing levels are updated for a skill group, i agents in that skill group are scheduled. A schedule created for an agent specifies work and off days, daily shift start and end times, and daily break start and end times.
The method and system of the invention uses simulation and Integer Linear Programming (ILP) to determine staffing levels and agent schedules jointly in an iterative manner. Staffing levels are determined via simulation. An ILP based method described in a related patent application Ser. No. 10/614,483, filed Jul. 7, 2003 by the inventor is used for schedule optimization to meet the staffing levels determined by simulation.
The method of the invention begins with an initialization step in which agents in each skill group are scheduled assuming a non-skills-based environment such that each skill group serves the contact group for which it has the highest skill level, or a unique skill that is not shared by any other skill group. After the initialization step, starting with the selection of the skill group with the most skills, the following iterative process is applied: 1) unschedule agents in the selected skill group, 2) simulate the contact center environment with agents in other skill groups working their current schedules, contact volume and average service time forecasts for all contact groups, contact arrival, service and abandonments, and routing rules to determine the agent requirements for the skill group that was unscheduled to meet the service level targets for contact groups whose service levels are affected by the absence of such agents, and 3) schedule agents in the selected skill group to meet the agent requirements found in step (2). Steps (1-3) are repeated, by selecting one skill group at a time for unscheduling, from the skill group with the most skills to the skill group with the least skills, until all skill groups are rescheduled. When all skill groups are rescheduled by repeating steps (1-3) after the initialization step, this is called an “iteration”. The method of the invention performs multiple iterations. Successive iterations are terminated when one or more stopping criteria are satisfied.
U.S. Pat. No. 5,911,134 issued on Jun. 8, 1999 to Castonguay et al. (“Castonguay method”) describes a method for determining the staffing levels using the Erlang C model and developing weekly tour schedules in non-skills based call centers. The Castonguay method describes tour and shift construction rules to select tour and daily shift templates from the available ones, using measures such as “coverage”, and break scheduling rules to schedule daily breaks (U.S. Pat. No. 5,911,134, col. 18, lines 26-46, and FIG. 11). The Castonguay method also includes post-processing steps to eliminate the redundant tours, level break times, and take employee preferences into consideration. The staffing model used in this method, Erlang C, is known to assume all callers will wait until they are served and will not abandon their calls. This is clearly not the case at call centers where impatient customers may terminate their calls before being served. Moreover, the Castonguay method generates agent schedules using simple heuristic rules.
U.S. Pat. No. 6,044,355 issued on Mar. 28, 2000 to Crockett et al. (“Crockett method”) describes a method for developing weekly tour schedules in a contact center environment involving multiple agent groups with a plurality of skill sets, and a plurality of contact groups requiring different agent skills. The Crockett method uses a scheduler and a simulator to determine a net staffing array that gives the difference between the staffing levels already scheduled and those that are required in each planning period in the current iteration. It also uses a skill group availability matrix that describes the percentage of time agents in a skill group serve contacts in a contact group. The Crockett method's scheduler then takes these two inputs to generate additional schedules using heuristic rules. These schedules are then simulated to modify the group availability matrix and the net staffing array.
Atleson et al. (2004 and 2008) considered the staffing and scheduling problems using an Integer Programming model, namely the set covering model of Dantzig (1954), enumerating all possible shift start and break start times together with the work and off day patterns. They considered simulation for estimating service levels in different periods. The method (“Atleson method”) is limited in a number of ways. First, it is developed for a non-skills based staffing and scheduling environment. Second, it uses the set covering model for schedule optimization that is known to require a large number of decision variables in scheduling agents at most contact centers, making its solution inefficient or infeasible. The Atleson method also ignores break schedules for agents.